package com.rui.patterns.memento.black_box;

/**
 * @author : [锐神NO.3]
 * @version : [v1.0]
 * @className : Client
 * @createTime : [2022/2/25 15:06]
 * @description : [描述该类的功能]
 */

public class Client {
    public static void main(String[] args) {
        System.out.println("------------------大战boss前---------------------");

        //创建游戏角色对象
        GameRole gameRole = new GameRole();

        //初始状态操作
        gameRole.initState();

        //展示状态
        gameRole.stateDisplay();

        //将该游戏角色内部状态备份
        //创建管理者对象
        RoleStateCaretaker roleStateCaretaker = new RoleStateCaretaker();
        roleStateCaretaker.setMemento(gameRole.saveState());

        System.out.println("------------------大战boss后---------------------");

        //损耗严重
        gameRole.fight();
        gameRole.stateDisplay();

        System.out.println("------------------恢复状态---------------------");

        gameRole.recoverState(roleStateCaretaker.getMemento());
        gameRole.stateDisplay();
    }
}
